package dondeestamitransporte.actividadesPasajero;

import java.util.ArrayList;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.Polyline;
import com.google.android.gms.maps.model.PolylineOptions;

import dondeestamitransporte.actividades.R;
import dondeestamitransporte.actividades.R.id;
import dondeestamitransporte.actividades.R.layout;
import dondeestamitransporte.mundo.MundoPasajero;
import dondeestamitransporte.mundo.RutaPasajero;
import dondeestamitrasnporte.protocolo.Paradero;
import android.support.v4.app.Fragment;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;

public class VerMapaParaderoAlternoActivity extends Activity {

	public static String CONSTANTE ="VER_MAPA_PARADERO_ALTERNO_ACTIVITY";
	private int idRuta;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_ver_mapa_paradero_alterno);

		Intent intent = getIntent();
		String origen = intent.getStringExtra(CONSTANTE);
		idRuta = Integer.parseInt(origen);
		RutaPasajero ruta =  MundoPasajero.getInstance().rutasPasajero.get(idRuta);

		GoogleMap map = ((MapFragment) getFragmentManager().findFragmentById(R.id.VerMapa_mapa)).getMap();

	

			Paradero para = MundoPasajero.getInstance().darParadero(MundoPasajero.getInstance().rutasPasajero.get(idRuta).getNombre(), MundoPasajero.getInstance().rutasPasajero.get(idRuta).getNombreParadero());
			LatLng paraderoPrincipal = para.getCoordenadas();

			if(MundoPasajero.getInstance().SePuedeDibujar(MundoPasajero.getInstance().rutasPasajero.get(idRuta).getNombre()))
			{

				Log.d("Donde esta mi transporte", "Dibuja");
				PolylineOptions	rectOptions = new PolylineOptions();

				ArrayList<LatLng> coordenadas = MundoPasajero.getInstance().darDibujo(MundoPasajero.getInstance().rutasPasajero.get(idRuta).getNombre());

				for(int i = 0; i < coordenadas.size(); i++)
				{
					if(i==0)
					{
						Marker paradero = map.addMarker(new MarkerOptions().position(coordenadas.get(i))
								.title("Inicio Recorrido")
								.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_YELLOW)));
						paradero.showInfoWindow();

					}
					if(i == coordenadas.size()-1)
					{
						Marker paradero = map.addMarker(new MarkerOptions().position(coordenadas.get(i))
								.title("Final Recorrido")
								.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
						paradero.showInfoWindow();
					}
					rectOptions.add(coordenadas.get(i));
				}

				rectOptions.color(Color.RED);
				Polyline polyline = map.addPolyline(rectOptions);

			}


			map.setMapType(GoogleMap.MAP_TYPE_NORMAL);            
			map.moveCamera(CameraUpdateFactory.newLatLngZoom(paraderoPrincipal, 13));


			if (map!=null)
			{
				ArrayList<Paradero> paraderos = MundoPasajero.getInstance().darTodosParaderos(MundoPasajero.getInstance().rutasPasajero.get(idRuta).getNombre());

			
				Marker paradero = map.addMarker(new MarkerOptions().position(paraderoPrincipal)
						.title(para.getNombre())
						.snippet(MundoPasajero.getInstance().rutasPasajero.get(idRuta).getHoraEsperada())
						.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE)));


				paradero.showInfoWindow();
				

				
				for(int i = 0; i <paraderos.size(); i++)
				{
					if(paraderos.get(i)!=null)
					{
						Log.d("Donde esta mi transporte", "paraderos");
						if(i == 0)
						{


						}
						else
						{
							Marker paraderoAlterno = map.addMarker(new MarkerOptions().position(paraderos.get(i).getCoordenadas())
									.title(paraderos.get(i).getNombre())
									.snippet(paraderos.get(i).darHoraEsperadaLlegada())
									.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE)));


						}
					}
				}



			}



		}


	


	@Override
	public void onBackPressed() 
	{

		Intent intent = new Intent(this, MenuInicioPasajeroActivity.class);
		startActivity(intent);
	}


}
